package com.atguigu.es.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;


/**
 * bean和es索引的关系：
 *    一个类对应一个映射，类的属性对应映射中的一个属性（映射类似mysql中的表）
 *    一个对象对应一个文档
 *    Document注解： 表示和索引（索引类似mysql中的数据库）的映射关系
 *    indexName: 对应的索引名称
 *    shards ：分片数量
 *    replicas ：备份数量
 *    Id注解：表示该字段对应索引的主键id
 *    Field注解：表示属性和索引映射中的属性 的映射关系
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "user",shards = 2,replicas = 3)
public class User {

    @Id
    private Long id;

    @Field(value = "username",type = FieldType.Text,analyzer = "ik_max_word")//value:映射es中的属性名；type:属性的数据类型；analyzer:分词方式，当type=text是才有
    private String username;

    @Field(value = "salary",type = FieldType.Double)
    private Double salary;

    @Field(value = "email",type = FieldType.Keyword,index = false) //index:是否创建索引，不写该项，默认true
    private String email;




}
